License Keys In Multi Server Development Environments

It is common practice to use multiple servers in the development of web applications, for example, an application may go through a lifecycle;

developer machines ("localhost") -> single development test server ("devServer") -> QA server ("qaServer") -> production server ("prodServer")

The current licensing system allows keys for "devServer", "qaServer" and "prodServer" if they are accessed through non local browsers (note; 'devServer' and 'qaServer' keys will be provided free), and since it is not acceptable to change the "LicenseKey" property in source code for each server we suggest using the web.config file. Since each server should have a unique web.config file, storing the license keys in there makes sense.

Store the license key in the web.config in the <appSettings> section (if it doesn't exist, create it after the system.web section).

Eg;

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.web>
        ...........
    </system.web>
    <appSettings>
        <add key="Keyoti-RapidSpellWeb-LicenseKey" value="XYZXYZXYZ"/>
    </appSettings>
</configuration>

The key must be named "Keyoti-RapidSpellWeb-LicenseKey" or "Keyoti-RapidSpellWeb- LicenseKey2" if there are two keys for the server.

Now set each server's web.config accordingly, remember web.config files should not be deployed to a server with an application (because they are unique).